package com.swq.java.code.chapter15.code10;

import java.util.*;

/**
 * TODO xi.yang
 * 疑惑：遍历的时候没有按优先级排序，删除的时候会删除优先级最小的。那么存储的时候应该不是按优先级存的，
 * 但是我看删除的时候index索引没有比较优先级，如果存储已经按优先级存，那遍历的时候为啥又不是排序的。
 * 没有理解到Josh Bloch的设计思想。
 */
public class PriorityTester {
    public static void main(String args[]) {
        Queue<Integer> queue = new PriorityQueue<Integer>();
        queue.add(67);
        queue.add(12);
        queue.add(33);

        System.out.println(queue);

        System.out.print("遍历优先级队列: ");
        for (Integer e : queue)
            System.out.print(e + "  ");

        System.out.print("\n依次删除优先级队列中的元素: ");
        while (!queue.isEmpty())
            System.out.print(queue.remove() + "  ");

        System.out.println();
        System.out.println(queue);
    }
}